
/*

Design Pattern Automation Toolkit.
Application to create applications with emphasis on Design patterns.
And support for round trip engineering.
Copyright (C) 2004 Vineeth Neelakant. nvineeth@gmail.com

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

*/
/*
 * Created by SharpDevelop.
 * User: administrator
 * Date: 03/11/2004
 * Time: 11:22 AM
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System;
using System.Reflection;
using DesignPatternDefinitions;

namespace DotNetReverseEngineering
{
	/// <summary>
	/// Description of RevEnggAggregateInfo.
	/// </summary>
	public class RevEnggAggregateInfo : IAggregate
	{
		Type aggregator,aggregatee;
		string aggName;
		bool isMultiple;
		public RevEnggAggregateInfo(Type a1, Type a2, string aname, bool multiple)
		{
			this.aggregator=a1;
			this.aggregatee=a2;
			this.aggName=aname;
			this.isMultiple=multiple;
		}
		
		public string AggregatorClassComponent
		{
			get{ return this.aggregator.Namespace;}
			set{}
		}
		public string AggregatorClass
		{
			get{return this.aggregator.Name;}
			set{}
		}
		public string AggregateeClassComponent
		{
			get{return this.aggregatee.Namespace;}
			set{}
		}
		public string AggregateeClass
		{
			get{return this.aggregatee.Name;}
			set{}
		}
		public RelationOrder Order
		{
			get
			{
				if(this.isMultiple) return RelationOrder.Multiple;
				return RelationOrder.Single;
			}
			set{}
		}
		public string AggregateName
		{
			get{return this.aggName;}
			set{}
		}
		
	}
}
